solution "cpfs"
    configurations {"debug", "optimized", "profile", "release"}
    includedirs "include"
    defines {"_FILE_OFFSET_BITS=64", "_GNU_SOURCE"}
    buildoptions {
            "-Wextra",
            "-Wmissing-format-attribute",
            "-Wall",
            "-Wfloat-equal",
            "-fdiagnostics-show-option",
            "-Werror=return-type"
        }
    configuration {"not Release"}
        flags {"Symbols", "ExtraWarnings"}
    project "cpfsutil"
        kind "StaticLib"
        language "C"
        files {"cpfsutil/*.c", "cpfsutil/*.h"}
        includedirs {"include/cpfsutil"}
        buildoptions {"-std=gnu99"}
    project "cpfs"
        language "C++"
        files {"cpfs/*.h", "cpfs/*.cpp"}
        kind "StaticLib"
        includedirs {"include/cpfsutil"}
        buildoptions {"-std=gnu++0x"}
    project "mkfs.cpfs"
        language "C++"
        files {"mkfs_cpfs/*.c*", "mkfs_cpfs/*.h"}
        kind "ConsoleApp"
        buildoptions {"-std=gnu++0x"}
        links {"cpfs", "cpfsutil", "boost_program_options",}
    project "mount.cpfs"
        language "C"
        kind "ConsoleApp"
        files {"mount_cpfs/*.c", "mount_cpfs/*.h"}
        buildoptions {"`pkg-config --cflags fuse`", "-std=gnu99"}
        defines {"FUSE_USE_VERSION=28"}
        links {"cpfs", "cpfsutil"}
        linkoptions {"`pkg-config --libs fuse`", "-lstdc++"}
    project "systest"
        language "C"
        kind "ConsoleApp"
        files {"systest_src/*.c"}
        buildoptions {"-std=gnu99"}
